const program = require("commander");

const { DEFAULT_VUE_COMPONENT_PATH,DEFAULT_VUE_PAGE_PATH } = require("../config/config");
const {
  createProjectAction,
  addComponentAction,
  addPageAction,
} = require("./actions");

const createCommands = () => {
  // ^ 创建项目的指令
  program
    .command("create <project> [others...]") //  project = 传入的第一个参数 必选  others是后续参数的一个数组
    .description("创建一个项目 参数时项目名")
    .action(createProjectAction);

  // ^ 添加组件的指令

  program
    .command("addcpn <componentName>")
    .description(
      `快速添加组件指令，默认在${DEFAULT_VUE_COMPONENT_PATH}文件夹内 ，如果要指定路径，可以在 -d 写入相对路径 `
    )
    .action((name) => {
      const options = program.opts();
      // 这里判断一下，如果有传入路径，则引入路径，如果没有则使用默认的路径
      addComponentAction(name, options.dest || DEFAULT_VUE_COMPONENT_PATH);
    });

  // ^ 添加页面指令

  program
    .command("addpage <pageName>")
    .description(
      `快速添加页面指令，默认在${DEFAULT_VUE_PAGE_PATH}文件夹内 ，如果要指定路径，可以在 -d 写入相对路径 `
    )
    .action((pageName) => {
      const options = program.opts();
      addPageAction(pageName, options.dest || DEFAULT_VUE_PAGE_PATH);
    });
};

module.exports = createCommands;
